using System;

namespace Neturion.Dados
{
    /// <summary>
    /// Conta Bancaria
    /// </summary>
    public class ContaBanco : Conta
    {
        private TipoContaBanco _tipoContaBanco;
        private Agencia _agencia;
        private Pessoa _titular;
        private decimal _saldoAnterior;
        private decimal _saldoAtual;
        private decimal _limite;
        private int _percentualLimite;
        private DateTime? _inicioVigencia;
        private DateTime? _fimVigencia;
        private NeturionLog _neturionLog;

        public ContaBanco()
        {
        }


        /// <summary>
        /// Tipo de Conta que cada Banco pode Cadastrar, seguindo sempre o EnumTipoContaBanco
        /// </summary>
        public virtual TipoContaBanco TipoContaBanco
        {
            get { return _tipoContaBanco; }
            set { _tipoContaBanco = value; }
        }

        public virtual Agencia Agencia
        {
            get { return _agencia; }
            set { _agencia = value; }
        }

        /// <summary>
        /// Titular da Conta Bancaria
        /// </summary>
        public virtual Pessoa Titular
        {
            get { return _titular; }
            set { _titular = value; }
        }

        public virtual decimal SaldoAnterior
        {
            get { return _saldoAnterior; }
            set { _saldoAnterior = value; }
        }

        public virtual decimal SaldoAtual
        {
            get { return _saldoAtual; }
            set { _saldoAtual = value; }
        }

        public virtual decimal Limite
        {
            get { return _limite; }
            set { _limite = value; }
        }

        public virtual int PercentualLimite
        {
            get { return _percentualLimite; }
            set { _percentualLimite = value; }
        }

        public virtual DateTime? InicioVigencia
        {
            get { return _inicioVigencia; }
            set { _inicioVigencia = value; }
        }

        public virtual DateTime? FimVigencia
        {
            get { return _fimVigencia; }
            set { _fimVigencia = value; }
        }

        public virtual NeturionLog NeturionLog
        {
            get { return _neturionLog; }
            set { _neturionLog = value; }
        }
    }
}